package com.cn.wanxi;

import com.cn.wanxi.model.UserModel;

/**
 * 接口的目的  多元化  多态
 * class  父类 class 特殊表现
 * 包的命名规则：
 * com.cn.wanxi.**
 * 所有包名全部小写，然后每一个包名代表一个意思
 * java命名规范：
 * java有哪些需要命名？
 * findByUsernameAndPassword(); fbuap
 * 类   大驼峰式命名规则   首字母大写  UserModel 建议 所有的命名全部用英文，不要出现中文，拼音，特殊字符，数字，不要简写
 * 属性  小驼峰式命名
 * 方法  小驼峰
 * 构造方法  类名和方法名一致
 * 变量  小驼峰
 * 常量  全部大写   PUBLIC_B
 * <p>
 * servlet的三层架构
 * 页面控制层  servlet包 和页面相关的代码写在当前包
 * 服务逻辑层  service包 将逻辑关系代码写入当前包
 * 数据实现层  dao包     和数据相关
 * model   实体层 对象层
 * util    工具包，公共信息包
 * 国际，国内  ，公司名称 具体包名
 */
public class Child{
//    @Override//注解表示判断当前是否为重写
//    public String eat(String b) {
//        System.out.println(11);
//        return "";
//    }
//
//    public int eat(int a) {
//        System.out.println(11);
//        return 0;
//    }
    /**
     * 姓名
     * 性别
     * 年龄
     * 玩泥巴
     * 转圈圈
     */
    /**
     * 属性
     * 方法
     * java类里面包含
     * 包
     * 属性和
     * 方法
     *
     * 构造方法
     * 代码块
     *  变量值  变量
     */
//    性别：男
//    java的数据类型
//    Java数据类型（八种基本数据类型）：
//    六种数字类型（四个整数型，两个浮点型），
//    一 种字符类型，
//    还有一种布尔型
//    基本数据类型的取值范围，默认值，字节数

    /**
     * 一个字节 8个bit比特位
     * byte     1       2^8   有符号位  2^7     -2^7   ~   2^7-1
     * short    2
     * int      4
     * long     8
     * float    4
     * double   8
     * char     2
     * boolean  1个bit
     * 全局属性可以不设置初始变量
     */
    /**
     * 引用类型
     * 类  抽象 接口  数组  注解  枚举
     * <p>
     * 变量的定义
     * 完整的变量定义
     * 自己命名的名字 叫做标识符
     * 值 叫做 字面量
     * = 运算符
     * int  数据类型
     * final，static 修饰符  特征修饰符  非访问修饰符
     * public  权限修饰符  访问修饰符
     * private
     * protected
     * 默认不写 default
     * <p>
     * final  最终的，不可改变的
     * 修饰类   该类不被继承
     * 修饰属性  该属性值不可改变
     * 修饰方法  改方法不能重载
     * 重载 ：同一个方法里面  方法名相同，参数类型不同，参数个数不同
     *
     * @overwirte 重写：子类与父类  方法名相同  参数类型
     * static 静态的   需要经常调用的属性和方法  方便  快速 项目加载时 会直接讲属性加载到内存
     */
//不可改变的属性 叫常量
//    public final int publicb = 4;
//    private int privateb = 3;
//    protected int protectedb = 3;
//    int b = 3;
//   static Long aa;//所有应用类型默认值为null
    {
        System.out.println("child代码块");
    }
   static  {
       System.out.println("child静态代码块");
    }
    public Child(){
        System.out.println("child构造方法");
    }
    static Person person=new Person();

    /**
     *  高扩展  多态
     * 类的执行顺序？
     * 1.先执行静态代码块，按照书写顺序执行
     * 2.先执行父类的静态代码块，
     * 3.静态代码块，代码块，构造方法
     * 4.只要用类，则代码块就需要执行
     * 5.如果是构造方法，必须要实例化当前对象才会执行
     */
    public static void main(String[] args) {
        System.out.println(1);
//        new Child();
//        System.out.print();
//        UserModel model = new UserModel();
//        model.setAge(1000000);
//        System.out.println(model);
//        System.out.println("--"+b+"---");
//        Child直接用类名来调用属性或者方法的 ，必须是静态static的
//        new Child()
//        int a = 0;
//        byte b = 0;
//        a = b;
//        b = (byte) a;
//        char c='中';
//        float f;
//        Float ff=0F;
//        double d=0;
//        Double dd=0d;

//        int i=0;
//        for (int j = 0; j < 100; j++) {
//            ++i;
//            i++;
//            i=i++;
//            i=++i;
//        }
//        System.out.println(i);
//        System.out.println(aa);
//        boolean boo=false;
//        封装类
//        a=f;
//        f=a;
//        数据类型转换哪些可以相互转换？哪些不能转换?
//        a=c;//是因为char
//        a=boo;
//        c= (char) a;
//        b=c;
//        c=b;
    }
}
